package com.yyf.config;

import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

// 替换掉错误的导入
// import java.util.Queue;
import org.springframework.amqp.core.Queue;

@Configuration
public class RabbitDirectConfig {
    //定义队列
    @Bean
    public Queue orderQueue() {
        /*
         * 参数说明：
         * - name：队列名
         * - durable：是否持久化（重启后队列仍存在）
         * - exclusive：是否排他（仅当前连接可见）
         * - autoDelete：是否自动删除（无消费者时自动删除）
         */
        return new Queue("order.direct.queue", true, false, false);
    }

    //定义Direct交换机
    @Bean
    public DirectExchange orderDirectExchange() {
        // durable（持久化） autoDelete（自动删除）
        return new DirectExchange("order.direct.exchange", true, false);
    }

    // 3. 绑定：交换机 + 路由键 + 队列
    @Bean
    public Binding orderBinding() {
        //当消息路由建未”order.create"时 路由道orderQueue
        return BindingBuilder
                .bind(orderQueue())
                .to(orderDirectExchange())
                .with("order.create");
    }
}
